package com.zmn.oms.business.interfaces.messageV1.text;

import com.zmn.oms.model.dto.messageV1.SendMessageParams;
import com.zmn.oms.model.dto.messageV1.TextMessageDTO;
import com.zmn.oms.model.entity.detail.OrderDetail;
import com.zmn.oms.model.entity.work.OrderWork;

import java.util.Map;

/**
 * 类描述：发送短信
 *
 * @author yule
 * @date 2020/12/23 14:15
 */
public interface MessageSendTextService {
    /**
     * 普通默认短信 无参数 消息发送，用于发送没有参数的固定文案短信
     * 用于配置规则下模板组没有参数，配置写死的文案发送
     * @see com.zmn.oms.common.constant.MessageRuleIdConsts  节点ruleId配置
     * 如参数发送请调用下面有参数接口
     * @param ruleId
     * @param mobile
     * @return
     */
    boolean sendTextMessage(Integer ruleId, String mobile);

    /**
     * 普通短信消息发送，用于发送带自定义参数的短信消息
     * 自定义参数发送
     * @see com.zmn.oms.common.constant.MessageRuleIdConsts  节点ruleId配置
     * @param ruleId
     * @param mobile
     * @return
     */
    boolean sendTextMessage(Integer ruleId, String mobile, Map<String, String> params);

    /**
     * 普通短信消息发送，可以限制城市、渠道
     *
     * @see com.zmn.oms.common.constant.MessageRuleIdConsts  节点ruleId配置
     * @param textMessageDTO
     * @return
     */
    boolean sendTextMessage(TextMessageDTO textMessageDTO);

    /**
     * 节点条件发送短信，自动触发，走业务逻辑
     * @see com.zmn.oms.common.constant.MessageRuleIdConsts  节点ruleId配置
     * @param param
     * @return
     */
    boolean sendTextMessage(SendMessageParams param);

    /**
     * 发送要客短信
     *
     * @param orderWork
     * @return
     */
    boolean sendVipTextMessage(OrderWork orderWork, OrderDetail orderDetail);


}
